//真正创建节点，将vnode创建为DOM,是孤儿节点，不进行插入
export default function createElement(vnode) {
  console.log('目标是把虚拟节点', vnode, '真正变为DOM')
  //创建一个DOM节点，这个节点现在还是孤儿节点
  let domNode = document.createElement(vnode.sel)
  //有子节点还是有文本？？
  if (
    vnode.text != '' &&
    (vnode.children == undefined || vnode.children.length == 0)
  ) {
    //内部是文字
    domNode.innerText = vnode.text

    //让孤儿节点上树，让标杆节点的父元素调用insertBefore方法，将新的孤儿节点插入到标签节点之前
    // pivot.parentNode.insertBefore(domNode, pivot)

    //补充elm属性
    vnode.elm = domNode
  } else if (Array.isArray(vnode.children) && vnode.children.length > 0) {
    //它内部是子节点，就要递归创建节点
    for (let i = 0; i < vnode.children.length; i++) {
      let ch = vnode.children[i]
      console.log(ch)
      let chDOM = createElement(ch)
      domNode.appendChild(chDOM)
    }
  }
  console.log('domNode', domNode)
  //补充elm属性
  vnode.elm = domNode

  //返回elm,elm属性是一个纯DOM对象
  return vnode.elm
}
